#ifndef LANE_H
#define LANE_H

#include "InOut.h"
#include "Vehicle.h"
#include <math.h>

using namespace std;

#include <vector>

class Lane {
    private:
        int id;
        float density;
        InOut * in;
        InOut * out;
		int idCrIn;
		int idCrOut;
		float aleas;

    public:
        vector<Vehicle*> listVehicle;

        Lane();
        Lane(int,float, InOut *, InOut *, int, int);

        int getId() const;
        void setId(int ID);
        float getDensity() const;
        void setDensity(float Density);
        InOut* getIn() const;
        void SetIn (InOut* In);
        InOut* getOut() const;
        void SetOut (InOut* Out);
        void addVehicle (Vehicle* v);
        void eraseVehicle (Vehicle* v);
		vector<Vehicle*> getListVehicle();
		int getCrossOut() const;
        void setCrossOut(int crossOut);
        void toString();
        int getIdCrIn() const;
        void setIdCrIn(int idCrIn);
        int getIdCrOut() const;
        void setIdCrOut(int idCrOut);

		bool needCreation();
};

#endif
